<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <div>
            <!-- text和textarea: 使用value属性和input事件 -->
            <h2>text和textarea</h2>
            <p>文本框: <input type="text" v-model="msg"></p>
            <p>文本域: <textarea  v-model="msg"></textarea></p>
            <p>msg: {{msg}}</p>
        </div>
        <div>
            <!-- 单个复选框: 使用checked属性和change事件 -->
            <h2>单个复选框</h2>
            <p><input type="checkbox" v-model="isRem">是否记住用户名?</p>
            <p>isRem: {{isRem}}</p>
        </div>
        <div>
            <!-- 单个复选框: 使用value属性和change事件(内部实现:判断是否选中,选中就把值放到数组中 否则就从数组中移除)   =>  也可以在数组中设置对应的value值,让指定复选框选中 -->
            <h2>多个复选框</h2>
            <p>
                爱好:
                <label><input type="checkbox" v-model="hobby" name="hobby" value="sing" >唱</label>
                <label><input type="checkbox" v-model="hobby" name="hobby" value="dance" >跳</label>
                <label><input type="checkbox" v-model="hobby" name="hobby" value="rap" >rap</label>
                <label><input type="checkbox" v-model="hobby" name="hobby" value="basketball" >basketball</label>
            </p>
            <p>hobby: {{hobby}}</p>
        </div>

        <div>
            <!-- 单个复选框: 使用value属性和change事件 =>  也可以在数据中设置对应的value值,让指定单选框默认选中 -->
            <h2>多个单选框</h2>
            <p>
                性别:
                <label><input type="radio" v-model="sex" name="sex" value="1" >男</label>
                <label><input type="radio" v-model="sex" name="sex" value="0" >女</label>
                <label><input type="radio" v-model="sex" name="sex" value="2" >保密</label>
            </p>
            <p>sex: {{sex}}</p>
        </div>
        <div>
            <!-- 注意: 如果下拉框中有value属性,则优先取value属性,否则取option标签对中的内容 -->
            <!-- 下拉框(单选): 使用value属性和change事件   => 单个值  -->
            <h2>下拉框(单选)</h2>
            <p>
                出现年份:
                <select v-model="year" id="">
                    <option value="2001">2001</option>
                    <option value="2002">2002</option>
                    <option value="2003">2003</option>
                    <option value="2004">2004</option>
                    <option value="2005">2005</option>
                    <option value="2006">2006</option>
                    <option value="2007">2007</option>
                    <option value="2008">2008</option>
                    <option value="2009">2009</option>
                    <option value="2010">2010</option>
                    <option value="2011">2011</option>
                    <option value="2012">2012</option>
                    <option value="2013">2013</option>
                    <option value="2014">2014</option>
                    <option value="2015">2015</option>
                    <option value="2016">2016</option>
                    <option value="2017">2017</option>
                    <option value="2018">2018</option>
                    <option value="2019">2019</option>
                    <option value="2020">2020</option>
                    <option value="2021">2021</option>
                    <option value="2022">2022</option>
                    <option value="2023">2023</option>
                </select>
            </p>
            <p>year:{{year}}</p>
        </div>
        <div>
            <!-- 注意: 如果下拉框中有value属性,则优先取value属性,否则取option标签对中的内容 -->
            <!-- 下拉框(单选): 使用value属性和change事件   => 多个值放数组   -->
            <h2>下拉框(多选)</h2>
            <p>
                爱好:
                <select v-model="like" multiple>
                    <!-- <option value="">请选择</option> -->
                    <option value="sing">sing</option>
                    <option value="dance">dance</option>
                    <option value="rap">rap</option>
                    <option value="basketball">basketball</option>
                </select>
            </p>
            <p>like:{{like}}</p>
        </div>

    </div>
</body>
<script>
    // Vue的特征之一 就是响应式
    // 1. Vue实例中的数据发生了改变, 页面也会同步更新

    // 模拟实现双向数据绑定: Vue的响应式原理 在配合 Vue中的事件 => 可以实现双向数据绑定
    //  1. Vue实例中的数据发生了改变, 页面也会同步更新
    //  2. 表单元素的相关属性(value checked)发生改变, 数据也会同步更新


    // 可以用 v-model 指令在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。
    // 它会根据控件类型自动选取正确的方法来更新元素  => 不同类型的表单元素 选取的属性和方法不一样
    

    // v-model 在内部为不同的输入元素使用不同的 property 并抛出不同的事件：
    // text 和 textarea 元素使用 value property 和 input 事件；
    // checkbox 和 radio 使用 checked property 和 change 事件；( 多个 checkbox 和 radio 使用 value属性和 change 事件)
    // select 字段将 value 作为 prop 并将 change 作为事件。
</script>
<script>
    new Vue({
        el:"#app",
        data:{
            msg:"hello",
            isRem:false,
            hobby:['basketball'],
            sex:2,
            year:2023,
            like:[],
        },
       
    })


</script>
</html>